import request from '@/utils/request'

/**
 * 获取员工列表
 * @param {*} params 请求参数
 * @returns 返回 json 格式数据
 */
export function getEmployeeList(params) {
  return request({
    url: '/sys/user',
    params
  })
}

/**
 * 导出 Excel 接口
 * @returns blob 二进制文件流
 */
export function exportExcel() {
  return request({
    url: '/sys/user/export',
    responseType: 'blob' // 改变接受到的数据类型 使用 blob 格式接受二进制文件流
  })
}
/**
 * 下载导入模板
 * @returns blob 二进制文件流
 */
export function exportTemplate() {
  return request({
    url: '/sys/user/import/template',
    responseType: 'blob'
  })
}
/**
 * 上传用户 Excel 功能
 * @param {*} data 要上传的文件
 * @returns 返回上传结果
 */
export function uploadExcel(data) {
  return request({
    url: '/sys/user/import',
    method: 'post',
    data // form-data 类型 因为要上传文件类型
  })
}
/**
 * 删除员工接口
 * @param {*} id 需要删除的员工id
 * @returns 返回删除成功或者失败
 */
export function delUser(id) {
  return request({
    url: `/sys/user/${id}`,
    method: 'delete'
  })
}
/**
 * 新增员工接口
 * @param {*} data 需要保存的数据
 * @returns 返回保存成功或者失败
 */
export function addEmployee(data) {
  return request({
    url: '/sys/user',
    method: 'post',
    data
  })
}
/**
 * 根据 id 获取员工详情
 * @param {*} id 要查询的员工id
 * @returns 返回该员工的信息
 */
export function getEmployeeDetail(id) {
  return request({
    url: `/sys/user/${id}`
  })
}
/**
 * 更新员工信息接口
 * @param {*} data 需要更新的数据
 * @returns 返回更新成功或者失败
 */
export function updateEmployee(data) {
  return request({
    url: `/sys/user/${data.id}`,
    method: 'put',
    data
  })
}
/**
 * 获取可用权限列表
 * @returns 返回可用权限列表
 */
export function getEnableRoleList() {
  return request({
    url: '/sys/role/list/enabled'
  })
}
/**
 * 给员工分配角色
 * @param {*} data {id roleIds}
 * @returns 成功失败结果
 */
export function assionRole(data) {
  return request({
    url: '/sys/user/assignRoles',
    method: 'put',
    data
  })
}
